home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 26 / Cream of the Crop 26.iso / os2 / lxlt121.zip / lxLite / doc / whatsnew.txt < prev   
Text File  |  1997-08-17  |  30KB  |  524 lines

  1.                           -------------------------
  2.                            lxLite revision history
  3.                           -------------------------
  4.  
  5.  [;] Comment
  6.  [*] Modified
  7.  [+] Added feature
  8.  [-] Removed feature
  9.  [!] Bug fix
  10.  
  11.  1.2.1
  12.  ----- 17-Aug-97 small bugfix
  13.   [!]  Improved handling of filenames with forward slashes instead of
  14.        backslashes
  15.   [!]  (yet again :-() changed the 'already packed' detection algorithm.
  16.        The problem with it is that lxLite does not put any kind of
  17.        'fingerprint' into processed files so I have to decide whenever
  18.        it has been processed or not only by side effects.
  19.   [*]  Made noEA's output a bit quieter. Now without /V option noEA
  20.        shows all file names in one line and with /V option noEA advances
  21.        to next line only for those files that has EAs.
  22.   [!]  chCase is back now! I understood why chCase messed up filenames
  23.        when codepage was 437 :-( Sorry to those who had to reformat
  24.        their HD to get rid of messy filenames ;-( it is mostly IBM`s
  25.        fault, not mine. This sometimes breaks HPFS's filename BSP tree
  26.        and makes files totally unreachable, undeletable etc.
  27.  
  28.  1.2.0
  29.  ----- 10-Jul-97
  30.  [!!!] Mega-bug fix :-) I caught a very serious error in lxLite. However,
  31.        I`ve encountered it only on GNU C++ compiler executable when I
  32.        tried to pack it using RLE (/c:ver2x) method, so it is not too
  33.        probable that you seen it before :-) The problem was following:
  34.        for some unknown reason the guys at IBM decided that whenever a
  35.        packed page is bigger than 0xFFC bytes, it is an error. To understand
  36.        this, I had to dig through the OS/2 kernel (whew!). So if the
  37.        compression ratio for some page was really worse (this happens much
  38.        seldom on EXEPACK2 (LZ) method since it packs better, and often on
  39.        RLE method since it sucks), the page was simply missing at its
  40.        memory location (!). In such cases a record is added to POPUPLOG.OS2,
  41.        looking very unusual (no registers, no location etc).
  42.   [!]  noEA will not bomb out anymore when it tries to process a completely
  43.        locked file (i.e. ea data. sf).
  44.   [*]  In some situations (very high ordinals in entry table) lxLite began
  45.        to eat lots of memory, and this usually terminated with an
  46.        out-of-swap-space trap :-( Fixed.
  47.  
  48.  1.1.9
  49.  ----- 10-May-97 Upgrade for version 1.1.8
  50.   [*]  lxLite is distributed now under GNU General Public License (GPL).
  51.   [*]  lxLite`s documentation is now in both .HTML and .INF format
  52.        (the .INF book is converted for your convenience with HTML2IPF).
  53.   [!]  Oooooops! I`ve left a debug sequence in fixup packing section,
  54.        so really fixups were packed ONLY at page N20! :-)
  55.   [*]  Added a little tolerance to minor (and even severe) bugs in fixip
  56.        table which could lead lxLite to display an 'invalid fixup record'
  57.        message.
  58.   [*]  More tolerance to incorrect debug information (exceeds executable,
  59.        encountered on FASTECHO/2 1.46).
  60.   [!]  Yet again improved 'already-packed' modules detection :-)
  61.   [+]  Added the /C{+|-} option for those with a B/W monitors
  62.   [+]  Added the /CS{+|-} option for those who prefer writing to stdout.
  63.        Actually lxLite isn`t entirely an stdOut program, it still uses VioXXX
  64.        to do some things, notably get console width and height. You can put
  65.        this option in the [default] section of config file to force lxLite
  66.        always write to stdout.
  67.   [+]  Disabled the progress bar indicator when StdOut is redirected. Now
  68.        you can use lxLite >alternateLogFile without getting much garbage.
  69.        Try lxLite * | more :-)
  70.   [!]  Captain Nemo`s INI file (NEMO-OS2.INI) has a perfect NE executable
  71.        structure :-))) so I added NEMO-OS2.INI to the list of excluded files.
  72.   [+]  Added ability to apply (/MFA{+|-}) fixups since some executables
  73.        (observed on FASTECHO2.EXE - written using Borland C++ for OS/2)
  74.        were linked without /BASE: linker flag which leads to slower loading
  75.        times and bigger executables without need since executables are
  76.        always loaded at 0x10000. This option work only for .EXEs.
  77.   [*]  Now the /V flag works *after* lxLite processes module, so you will see
  78.        the *final* result of conversion, not the *original* module information.
  79.        Of course, you can still see the original if you`ll disable all lxLite
  80.        processing (the /C:info switch will do it for you).
  81.  
  82.  1.1.8
  83.  ----- 01-Mar-97; well, its THE time for a new release :-)
  84.   [!]  Fixed a serious bug in run-length packing method: the kernel
  85.        decompressor expects two zeros at the end of packed data and lxLite
  86.        didn`t put them there. The bug is since first lxlite release, so if
  87.        you previously encountered problems (especially using /C:Ver2x switch)
  88.        you should try to re-pack damaged modules (lxLite will correctly
  89.        unpack even "incorrect" modules, then will correctly pack them).
  90.        Big thanks to Vallat Christophe for pointing out this bug.
  91.   [+]  Now to reply to any question you can instead of pressing simply
  92.        [L]etter press <Alt>+[L]etter which will set the default reply for
  93.        all following similar questions.
  94.   [+]  Added the /MF3 fixup packing method which will find the best
  95.        alternative for each page between /MF1 and /MF2. However this is
  96.        a bit slow and does not give too much gain, so default is still /MF1.
  97.   [!]  Fixed a serious bug in /MF2 packing method. Lucky for you, previous
  98.        version was not public.
  99.   [*]  Now you cannot proceed module along with displaying module structure
  100.        (i.e. /V option has priority over any other).
  101.  
  102.  1.1.8g
  103.  ----- 15-Feb-97, a year from first public release :-)
  104.   [+]  Added some extra gain since now all fixed-up locations are filled
  105.        with zeros before packing. For modules with pre-applied fixups this
  106.        operation is not performed.
  107.   [+]  Added fixup packing method for Warp 4.0 (3.0 with fixpack #17) and
  108.        above (/MF2). This option is still at beta-test stage, so use with
  109.        care (by default it is disabled now). Anyway, this method has proven
  110.        to be less effective sometimes than /MF1 with above correction.
  111.        And note that on most executables this method will have absolutely
  112.        no effect: it is primarily intended for DLLs. Also note that when
  113.        fixup packing is enabled, the /U{+|-} option is ignored - module is
  114.        always unpacked first. The /MF2 option is ignored for modules with
  115.        pre-applied fixups (for example DOSCALL1.DLL).
  116.  
  117.  1.1.8b
  118.  ----- 25-Jan-97, my birthday :-)
  119.   [;]  WARNING: This is a PUBLIC BETA version; it still contains bugs,
  120.        especially in NE->LX conversion routines. USE WITH CARE.
  121.        I tested it for about a month, and found THREE executables on which
  122.        lxLite fails to convert (i.e. didn`t convert right from NE format
  123.        into LX): please avoid them:
  124.  
  125.      - OS2DASD.DMD with beta support for HPFS on removable drives
  126.        (other versions converts OK): halt on reboot with a "Unable to
  127.        operate your hard drive" message.
  128.      - RESOURCE.SYS from Warp 4.0 GA: Trap 0D on first keypress after
  129.        it is loaded.
  130.      - ES1688.SYS driver for ESS-1688 soundcard; trap when loading.
  131.  
  132.        I do not understand why this is happening; everything seems ok,
  133.        but something is wrong :-( That`s why I`m releasing this public
  134.        beta version: PLEASE REPORT ME ANY CASES WHEN LXLITE FAILS.
  135.        Contact information is available at the end of LXLITE.ENG file.
  136.  
  137.   [*]  Changed configuration file format: now it is Unix-alike, i.e.
  138.        configuration option is defined using square brakets, for
  139.        example [default]; next lines are interpreted as command-line
  140.        options that are loaded when loading specific section.
  141.  
  142.   [!]  Fixed two bugs in NE fixups conversion routine: this possibly
  143.        caused most of failures when converting NE modules before.
  144.  
  145.   [+]  Added exclusions and additional-options-based-on-filemasks needed
  146.        to entirely compress Watcom C subdirectory without losing
  147.        functionality of any executable.
  148.  
  149.   [*]  Added the /NR switch; now lxLite will fail to convert NE files that
  150.        contains resources; use the /NR option with care, especially on DLLs
  151.        since you must know what executables uses that DLL and which
  152.        function (Dos16GetResource or Dos16GetResource2) they`re using
  153.        to load resources.
  154.  
  155.  1.1.7b
  156.  ----- internal release
  157.   [;]  Now lxLite converts NE executables into LX. Uhhh! Lots`o`work done.
  158.        Lots'o'things changed. Lots'o'options added. Some options has been
  159.        renamed, some merged into one, so read at least following info before
  160.        trying new version.
  161.  
  162.   [*]  IMPORTANT: Now all options that can be followed by a string
  163.        (i.e. file name, configuration ID) must have a semicolon before
  164.        string, i.e. /C:default, /L:mylog etc.
  165.  
  166.   [*]  IMPORTANT: I changed a lot of options to make them more mnemonic:
  167.        The /D option now is called /E ([E]xclude); /E option has been
  168.        renamed into /R ([R]ecursive); /R option has been added to /A
  169.        option (which still works in old way (say /APS); you also can
  170.        directly specify new page shift count i.e. /A:4; you can use
  171.        them both ways i.e. /APS:4);
  172.  
  173.   [*]  Changed a lot of internals so it it possible for some bugs to appear.
  174.  
  175.   [*]  If you choose to load a specific configuration, and configuration
  176.        file contains more than one line that matches that config ID,
  177.        lxLite will load all such lines, not only the first as before, so
  178.        you can split very long configurations into some number of lines.
  179.  
  180.   [*]  Removed from configuration file options /C:failSafe, /C:fast,
  181.        /C:fast2 because they`re useless: experience shows that executables
  182.        packed with /C:default loads and works faster.
  183.  
  184.   [!]  Increased stack space: small stack space is very like to cause all
  185.        those strange crashes of lxLite on deep directory trees.
  186.  
  187.   [!]  Some minor memory leaks has been fixed
  188.  
  189.   [+]  Added functionality to VERBOSE mode: now you can specify what kind
  190.        of information you want to see. lxLite can serve as an replacement
  191.        for EXEMAP and EXEHDR programs :-) More detailed descrition you can
  192.        find in documentaion (English only, the German docs refers to version
  193.        1.1.5). For displaying exported entry points, fixups and forwarders,
  194.        lxLite now knows a lot of API functions by name. Today lxLite knows
  195.        by name all documented API functions in all base OS/2 dynamic-link
  196.        libraries. You can add your own - see the resources in API\
  197.        subdirectory.
  198.  
  199.   [+]  When displaying long texts (i.e. /V{...} option, help text) lxLite
  200.        will use a kind of 'MORE' prompt.
  201.  
  202.   [+]  Bundles of entry points now are re-packed although seems that in
  203.        most cases they are packed well.
  204.  
  205.   [+]  Fixup records now are also re-packed, although in most cases they
  206.        are already compressed. If you run lxLite on a previously packed
  207.        file (with earlier versions) and you get some gain, it means that
  208.        fixup records (or entry points bundles) has not been packed at
  209.        the maximum possible level. If you got BIGGER files, please
  210.        let me know :-)
  211.  
  212.   [!]  Corrected a bug which leaded to loss of non-resident name table
  213.        (usually it contains executable description) with a message
  214.        'LX file contains extra bytes' when it isn`t.
  215.  
  216.   [+]  Improved a bit 'already-compressed' executables detection.
  217.  
  218.   [+]  Added the /J option to change executable type: use it for
  219.        converted NE drivers since NE drivers are marked as DLLs; LX
  220.        drivers always must be marked as Device Drivers, otherwise they
  221.        will not load successfully.
  222.  
  223.   [+]  Added the ability to use some specific configuration options
  224.        for filenames that matches specific filemask. For example,
  225.        if in configuration file you`ll specify the entry:
  226.        @a*z.c?$: /B
  227.        this will enable backups for files that matches the "a*z.c?$"
  228.        filemask, i.e. aaaz.cc$, abcdefgz.ca$ but not for the bcde.cc$.
  229.        A side effect of this is that you can encounter a option syntax
  230.        error in the middle of the process, not only at the start.
  231.  
  232.   [+]  Improved a bit the /L option: now you can choose which types
  233.        of events you want to log; be careful: now the log filename
  234.        MUST BE SEPARATED BY A COLON from /L{...}, i.e. /L:"log file"
  235.  
  236.   [+]  Improved the /B option: now you can choose to backup only in
  237.        the cases when module contains e[X]tra or [D]ebug data. Also you
  238.        can choose to place backups in a certain directory; for example
  239.        with the /B:bak option lxLite will place all backed up files
  240.        into the \BAK\ directory on the current drive, recreating
  241.        the same directory structure as the original file was placed in.
  242.  
  243.   [*]  The /G option has been merged with the /O option; the /G option
  244.        now is gone.
  245.  
  246.   [+]  Modified the /W option: in the /WS+ state lxLite will perform
  247.        just like always, except that it won`t write output file (and
  248.        will display compression rate too unlike in the /W- state).
  249.  
  250.   [*]  lxLite utlity pack: version of utilites now will be the same as
  251.        for lxLite. So all enclosed utilites (chCase, noEA etc) now have
  252.        version 1.1.7
  253.  
  254.   [*]  Options in utilites changed according to changes in lxLite:
  255.        recursive search changed from /E to /R etc.
  256.  
  257.   [+]  ChCase: The option /C{...} has been extended: now you can define
  258.        separate rules for [F]iles and for [D]irectories: The /CF{...}
  259.        switch will define case conversion rules for [F]iles and /CD{...}
  260.        switch will define them for [D]irectories. If used in old fashion
  261.        (i.e. /C{...}) it will work both for files and directories.
  262.  
  263.   [!]  Both chCase and lxLite when processing a file with no attributes
  264.        (i.e. attrib -a-h-s-r) will set the Archive flag.
  265.  
  266.   [-]  Removed ColMng from lxLite utility pack because of its usefulness
  267.        and excessive complexity for most users :-)
  268.  
  269.   [+]  Added/changed a whole lot of other things I don`t remember now.
  270.  
  271.  1.1.6
  272.  ----- internal release
  273.   [-]  Removed sources from base distribution. The sources are still
  274.        available on request (see docs for "how to contact" information).
  275.        This was done since they grow in size very fast (they use some of
  276.        my external libraries - a function-two from each) and not too much
  277.        people really needs them.
  278.   [!]  Fixed a bug - the /GX{#} option worked only in /OX+ state
  279.   [*]  Improved a bit help on /O{G|D|X} option
  280.   [!]  Fixed a number of minor bugs in error-correction logic
  281.   [*]  Changed default option in unLock from /V+ to /V-
  282.   [*]  Changed default option in chCase from /V+ to /V-
  283.   [*]  Before unlocking file all utilites saves now file date/time;
  284.        after unlocking they`re restoring date & time, although this
  285.        is an overkill (?).
  286.  
  287.  1.1.5
  288.  ----- 19-Jun-96 another bug fix :-)
  289.   [!]  AT LAST! The famous `cannot open configuration file` bug fixed :-)
  290.        The problem was that CMD.EXE puts in environment the command line
  291.        that you used to start lxLite AS-IS while 4OS2 replaced it by
  292.        fully-qualified lxLite filename followed by its command-line
  293.        parameters. I used it to compute lxLite`s source path; however
  294.        program`s environment contains ANOTHER fully-qualified filename
  295.        path which I use now :-) and which is ALWAYS fully-qualified.
  296.   [+]  Because nobody understands how the /G switch works (I got a lot of
  297.        e-mail regarding this) I added a new switch: /O{X|D|S}{+|-}. If it
  298.        is disabled (/O-, default state) the /G switch works as before, i.e.
  299.        the data is written only if discarded from source file. If the /O+
  300.        option is used, the data is written always (if filemask is specified
  301.        by /G option).
  302.   [!]  Fixed an non-serious bug in CRT.PAS - now lxLite works as expected
  303.        even if it is redirected into a device other than CON (i.e. /dev/nul),
  304.        not only into files or pipes.
  305.   [+]  After a lot of thougts I added into lxLite utility pack my first PM
  306.        program for OS/2 - SysIcons. It is an simple program which allow you
  307.        to change system pointers (including but not limiting to mouse pointers,
  308.        as System Setup->Mouse->Pointer does). Also I included three of my best
  309.        sets of pointers - one which I partially designed myself, partialy
  310.        aquired from different sources, second is the B&W version of first
  311.        and third (white gloves) which I got from somewhere and converted to
  312.        B&W (because on my Cirrus Logic B&W pointers are supported by hardware
  313.        and does not flicker). Sorry to the author of White Gloves set, but I
  314.        lost original archive and copyright notice; I hope you`ll excuse me.
  315.    [!] Improved a bit error checking; previous versions sometimes (seldom)
  316.        failed on almost-good-exe-files (specifically GVPM.EXE which had one
  317.        of non-mandatory internal table beyond the limits of EXE files which
  318.        caused lxLite to fail with an runtime error).
  319.  
  320.  1.1.4
  321.  ----- 14-Jun-96 minor fixes & additions
  322.   [!]  Fixed displaying the question about extra LX data - I forgot to add
  323.        an carriage return after it. Also I removed the warning about the
  324.        possibility that resulting file will become non-functional.
  325.   [!]  Fixed a stupid bug (sizeOf(F) instead of fileSize(F)) which sometimes
  326.        forced lxLite to discard debug info even if you specify to leave
  327.        it in resulting file. In such cases lxLite displayed that file
  328.        has X bytes of extra data and the same amount of debug info.
  329.   [+]  Added an sub-option for /G[X|D|S]{#} - the /GX option now specifies
  330.        the filemask for files where to store stubs (even if lxlite won`t
  331.        remove them).
  332.   [!]  Fixed a minor bug in lxLite - when file was already processed but
  333.        stored with debug info and you process it again and choose to discard
  334.        debug info it refused to do it because `file was already processed`.
  335.   [!]  Fixed a serious bug - the /G option in version 1.1.3 DOES NOT DO WHAT
  336.        YOU PRESUME :-) It stored garbage instead of debug/extra data.
  337.   [*]  The option /GX*.$x$ is used by default. This was done for those
  338.        executables which failed to run after packing because the extra data
  339.        has been stripped. Use COPY /B {file}.exe+{file}.x {newfile}.exe
  340.        command to append extra LX data back - in most cases this will
  341.        restore the functionality of LX files. Note that now lxLite leaves
  342.        those *.$x$ files as garbage, so don`t forget to test the executable
  343.        functionality and to delete them if executable still works.
  344.   [*]  Improved performance of ChCase - now when computed filename will
  345.        be the same as initial file will be simply skipped.
  346.  
  347.  1.1.3
  348.  ----- 28-May-96 fixes & changes
  349.   [*]  Modified lxLite to redraw its progress bar only when it really changes.
  350.        This may improve its execution speed when running it in windowed
  351.        sessions (however I don`t use them :-)
  352.   [+]  Added option /G[X|D] which specifies an file mask for files where to
  353.        store the e[X]tra LX data and [D]ebug info when encountered and if
  354.        user chooses to discard it.
  355.   [+]  The /S switch now displays the status of the /I switch also.
  356.        This is done for those who don`t believe that it always works
  357.        (you know who you are :-)
  358.   [-]  Removed the /O{#} option which has proven to be useless.
  359.   [-]  Removed the old /D{+|-} switch (debug info remove on/off). Now lxLite
  360.        prompts the user if the debug info is encountered; however the default
  361.        behavior is to discard debug info (/YDD) as before. Now /D switch have
  362.        other meaning (see below).
  363.   [+]  Added (other) /D switch to set exclusion filemasks. Filemasks uses the
  364.        same rule as OS/2 does (in fact, lxLite uses OS/2 API to do that).
  365.        For example, /Dex*re.??e:*.zip:*.pas:*.obj will exclude these files
  366.        from lxLite`s field of view. The default configuration now includes
  367.        the [exclude] configuration which excludes all known executables
  368.        on which packing cannot be performed (such as PMJPEG, Watcom C etc).
  369.        Masks should be separated by ':'; the ',' and ';' symbols can be
  370.        present in HPFS long filenames, so they aren`t taken into account.
  371.   [+]  The /Y switch is modified (expanded). Now you can specify answers
  372.        for each type of possible questions separately. The /Y switch must
  373.        be followed by a letter - ID of answered question, then a letter -
  374.        what do you want answer to be to that question. The possible IDs
  375.        for now are:
  376.        -----------------------------------------------------------------------
  377.        Module is in [U]se (answers: [R]eplace, [S]kip or [A]bort);
  378.        File contains [D]ebug info ([D]iscard, [L]eave, [S]kip or [A]bort);
  379.        File contains e[X]tra data ([D]iscard, [L]eave, [S]kip or [A]bort);
  380.        .[B]AK file already exists ([O]verwrite, [N]o backup, [S]kip or [A]bort);
  381.        Confirmation (/P+) ([P]rocess, [S]kip or [A]bort);
  382.        -----------------------------------------------------------------------
  383.        For example, the /YUR switch will instruct lxLite always to replace
  384.        modules which are in use. The defaults are: /YBN /YDD and /YXD.
  385.   [+]  Added /L{#} switch to specify an [L]og file name. If no filename is
  386.        specified, the log file will be created as lxLite.log in the same
  387.        directory as lxLite.exe. The log file contains a list of processed
  388.        files, their initial and final sizes, and also all problems (if any)
  389.        which have been encountered when processing the file.
  390.  
  391.  1.1.2
  392.  ----- 22-May-96 minor additions and changes
  393.   [;]  The BOXER for OS/2 APAR is closed now :-) At last I downloaded it
  394.        from hobbes and it works packed absolutely without any problems.
  395.        This is due to the effect of `overlayed data` for which support
  396.        has been added in version 1.1.1.
  397.   [+]  Added an alternative [D]iscard choice when prompting for an action
  398.        when data out of LX structure is detected. Some DLL`s (even from
  399.        \OS2\DLL) seems to contain some garbage after end of LX file.
  400.   [*]  Changed memory allocation strategy - now memory manager allocate
  401.        memory in 64K chunks which can fix the problem of slow performance
  402.        on low-memory machines (8mb and less) when processing large files
  403.        (i.e. TUTORMRI.DLL). I can`t check this - please mail me if it works.
  404.   [*]  Changed backup strategy - now lxLite always make .BAK file even if
  405.        backups are disabled (/B-). If operation succeeds and backups are
  406.        disabled it is then removed. No more `$lxlite$.tmp` file.
  407.   [*]  Now lxLite says '(very!)' in phrase
  408.        'It is (very!) possible that resulting file will be non-functional'
  409.        only if the size of data out of LX structure is bigger than 256 bytes
  410.        (this can be changed by /O{#} option /see below/). If overlay size is
  411.        bigger and /Y+ switch is specified file is skipped otherwise overlayed
  412.        data is [D]iscarded.
  413.   [+]  Added /O{#} option which allows to specify threshold size for overlay
  414.        data. All overlays less than this value are discarded with /Y+ switch.
  415.        For more information please refer to english documentation.
  416.   [*]  Modified defaults - now lxLite by default doesn`t pack using
  417.        run-length method AT ALL (i.e. as if you specified /MRN switch).
  418.        That is because I hadn`t found even a case when using this method
  419.        lxLite produced packed files by at least A BYTE less in size.
  420.        Instead it compresses now A LOT faster.
  421.  
  422.  1.1.1
  423.  ----- 07-May-96 bugfix
  424.   [!]  noEA and chCase v1.0.0 does not work on directories - they says that
  425.        the module is in use. Version 1.0.1 is fixed.
  426.   [!]  lxLite, noEA, unLock and chCase leaves sometimes garbage on screen
  427.        especially when processing long subdirectories. Fixed.
  428.  
  429.  1.1.0
  430.  ----- 06-May-96 some additions + minor bugfix
  431.   [*]  Change in version numeration: Now version numbers conforms to GNU
  432.        standards. The first is major release number; second is minor release
  433.        ordinal and third is incremented only on bug-fixes.
  434.   [!]  Now lxLite checks for a valid MZ header in DOS executable stub.
  435.   [!]  Fixed: lxLite stops sometimes after trying to `pack` locked files
  436.        (i.e. swapper.dat) with a runtime error. The cause was a bug (sic!)
  437.        in DosEnumAttribute - when you issue it on a locked file it trashes
  438.        memory AFTER buffer passed to it (in my cause this trashed the stack).
  439.   [+]  Now lxLite understands quoted long complex filenames on the command
  440.        line like most OS/2 commands do. I.e. you can write
  441.         lxLite "my own subdirectory\my executable file.exe" /cmax
  442.   [+]  Added option /Q - query list of configurations.
  443.   [+]  Added option /I{+|-} - Run/don`t run at idle priority
  444.   [+]  Added detection of `overlayed` executables (usually from Watcom) -
  445.        for more information see English documentation.
  446.   [+]  Added `lxLite utility pack` which now consists of:
  447.         - unLock which allow to unlock `locked` executables
  448.         - chCase which allow to automatically change case of individual
  449.           filenames as well as of groups of filenames
  450.         - colMng is a simple utility to manage your WPS color palettes
  451.         - noEA which allow to remove extended attributes from files
  452.           and directories
  453.  
  454.  1.01
  455.  ---- 23-Feb-96 minor bugfix
  456.   [!] Bugfix :-) in v1.00 docs I erroneously stated that Alice was born
  457.       at 13-Feb-96; however the real date is 12-Feb-1996 :-)
  458.   [!] Now lxLite preserves not only timestamp but also file attributes.
  459.       The version 1.00 erroneously stated that file is used by another
  460.       process in the case lxLite failed to access it because of read-only
  461.       or system attribute.
  462.   [!] Fixed: lxLite preserves now extended attributes of the file. Sometimes
  463.       EAs are useful, although mostly occupies disk space :-)
  464.   [!] Fixed: lxLite now COPIES file into/from backup copies instead of
  465.       renaming them: this caused the WorkPlace Shell to track such operations
  466.       and to change the `program filename` field in program object.
  467.   [*] Now /R{#} option can be used to re-align pages even on 1 (byte)
  468.       boundary. This will get some extra bytes, however LINK386 does not
  469.       allow this value to be less than 4 (but OS/2 eats it) - use at your
  470.       own risk.
  471.   [-] Removed `Switch-to-foreground-when-asking` feature. This was
  472.       implemented rather as a lab work than a useful feature :-)
  473.       On the other hand, the version with this feature must use
  474.       PMSHAPI.DLL which is not always available (in particular when
  475.       booting from OS/2 repair/installation diskettes).
  476.  
  477.  1.00
  478.  ---- 15-Feb-96 first release version
  479.   [!] When an invalid page is encountered don`t exit with an error but
  480.       check first if this page is used. (Encountered on npswpsri.dll 1.81).
  481.       This is an invalid executable; however error is not fatal because
  482.       page isn`t used and OS/2 loads that DLL without problems.
  483.   [!] Now lxLite keeps and restores original executable timestamp.
  484.   [!] Fixed an error when OS/2 locks up on some DOS executables because
  485.       it contained a 0 at offset 3Ch in DOS EXE header.
  486.   [*] Changed format of .CFG file. Now it is a plain ASCII text file. For
  487.       details refer to documentation, section about options.
  488.   [-] Removed /D# option - use a text editor to add new cfgs.
  489.   [+] Added /D{+|-} option allowing to remove debug information.
  490.   [+] Added ability to recognize files packed with ABSOLUTELY THE SAME
  491.       options, so lxLite will not proceed the same file twice. "The same"
  492.       means that files will be recognized as packed ONLY if it has been
  493.       processed with the same switch(-es) which influence resulting file
  494.       size. Use /F+ (see below) switch to bypass this detection if you
  495.       want to process file anyway - for example if it has been already
  496.       packed, but not so good as it can be, i.e. by LINK386 or REPACK.
  497.   [+] Added /F{+|-} option allowing to force repacking even if lxLite
  498.       thinks that it is not needed. Use to bypass autodetection (`already
  499.       processed' message).
  500.   [+] Added /T{#} option allowing to replace DOS stubs. Use /T alone to
  501.       completely remove DOS stubs - useful for DLLs `cause they cannot
  502.       be run from DOS session at all.
  503.   [+] Added ability to replace even USED! i.e. `active` .DLL`s and
  504.       executables. Now you can repack entire \os2\*\*.* subdirectory
  505.       without having to do a clean boot. Note that you better reboot after
  506.       such operations because OS/2 will throw away all its internal cache
  507.       buffers for this module and it (i.e. its old copy) will be kept
  508.       entirely in memory/swapfile.
  509.   [+] Now lxLite runs at the idle:16 priority so it won`t overload your CPU.
  510.   [+] Now when lxLite encounters a problem to which he needs your answer he
  511.       brings itself to the foreground. The only thing to say about it is:
  512.       because of that lxLite uses now PMSHAPI & PMWIN.DLL, so it most likely
  513.       will not run under T-Shell. Because of that there are TWO supplied
  514.       versions of lxLite: lxLite-T.exe and lxLite.exe. Delete first if you
  515.       will not need lxLite with a clean boot.
  516.   [+] Added /Z{#} option which defines the threshold for lxLite to separate
  517.       programs with `functional` stubs such as dual-mode executables from
  518.       'dummy' stubs. Default size is 1024 bytes, i.e. on all executables with
  519.       stub size bigger than 1024 bytes the /T{#} option will have no effect.
  520.  
  521.  0.99b
  522.  ----- 07-Feb-96 beta-test version
  523.   [;] What`s new? Nice question :-)
  524.